// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

const DATE = [
  [2, '本周'],
  [3, '本月'],
]

const NAME_LIST = ['预约数', '到访数']
const getTimes = (type) => {
  let startTime, endTime
  if (type === 2) {
    startTime = CORE.timeNum(CORE.weekMonday(CORE.today())) // 本周一 00:00:00
    endTime = CORE.timeNum(startTime, -1, 7) // 本周日 23:59:59
  } else {
    startTime = CORE.timeNum(CORE.today().slice(0, 7)) // 本月初 00:00:00
    endTime = CORE.timeNum(CORE.dateStr(startTime, 0, 1), -1) // 本月末 23:59:59
  }
  return { startTime, endTime }
}
const getTrend = (type) => {
  const { startTime } = getTimes(type)
  const days = type === 2 ? 7 : CORE.monthDays()
  const xData = Array(days).fill().map((_, i) => CORE.dateStr(startTime, i).slice(5))
  const dataListMulti = NAME_LIST.map(() => Array(days).fill(0))
  return { xData, dataListMulti }
}

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 映射
   */
  MAP: {
    NAME_LIST,
    getTimes,
    getTrend,
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 日期
     */
    DATE,
  },

  /**
   * 初始信息参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setInfoParam() 重置时使用
   */
  INIT_INFO_PARAM: {
    date: DATE[0][0],
    ...getTimes(DATE[0][0]),
  },

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: {
    temp: {
      title: CORE.dict(CORE.DICT.DIRECTION, 1),
      xData: [],
      dataList: [],
      colorList: ['#0090FF', '#CCE9FF'],
    },
    organ: {
      title: CORE.dict(CORE.DICT.DIRECTION, 2),
      xData: [],
      dataList: [],
      colorList: ['#2FC6DD', '#D5D5D5'],
    },
    trend: {
      ...getTrend(DATE[0][0]),
      diy: {
        legend: {
          top: 6,
          right: 0,
          icon: 'roundRect',
          itemWidth: 16,
          itemHeight: 4,
          itemGap: 20,
        },
      },
    },
    rank: [],
  },
}
